/**
 * 国际化翻译混入 - 管理后台版本
 * 提供全局翻译函数 t() 和语言切换功能
 */
export default {
  computed: {
    currentLanguage() {
      return this.$store.state.web.language || 'zh';
    }
  },
  methods: {
    /**
     * 翻译函数
     * @param {String} key 翻译键
     * @returns {String} 翻译后的文本
     */
    t(key) {
      const lang = this.currentLanguage;
      const translations = {
        zh: {
          // 基础
          systemName: '学术会议管理系统',
          welcome: '欢迎使用学术会议管理系统',
          home: '首页',
          logout: '退出',
          personalInfo: '个人信息',
          changePassword: '修改密码',
          websiteHome: '网站首页',
          // 管理后台专用
          adminDashboard: '管理后台',
          statistics: '数据统计',
          userManagement: '用户管理',
          meetingManagement: '会议管理',
          paymentManagement: '支付管理',
          // 报名统计
          registrationStatistics: '报名数据统计',
          totalParticipants: '总报名人数',
          paidCount: '已支付',
          unpaidCount: '待支付',
          totalAmount: '总金额',
          paidAmount: '已收金额',
          todayIncrease: '今日新增',
          exportExcel: '导出Excel',
          refresh: '刷新',
          paymentStatusDistribution: '支付状态分布',
          registrationTrend: '报名趋势',
          registrationTimeDistribution: '报名时间分布',
          detailedData: '详细数据',
          proportion: '占比',
          // 表格相关
          search: '搜索',
          reset: '重置',
          noData: '暂无数据',
          loading: '加载中...',
          // 通用
          save: '保存',
          cancel: '取消',
          confirm: '确认',
          delete: '删除',
          edit: '编辑',
          add: '添加',
          submit: '提交',
          viewDetails: '查看详情',
          operation: '操作',
          status: '状态',
          createTime: '创建时间',
          updateTime: '更新时间'
        },
        en: {
          // 基础
          systemName: 'Academic Conference Management System',
          welcome: 'Welcome to Academic Conference Management System',
          home: 'Home',
          logout: 'Logout',
          personalInfo: 'Personal Information',
          changePassword: 'Change Password',
          websiteHome: 'Website Home',
          // 管理后台专用
          adminDashboard: 'Admin Dashboard',
          statistics: 'Statistics',
          userManagement: 'User Management',
          meetingManagement: 'Meeting Management',
          paymentManagement: 'Payment Management',
          // 报名统计
          registrationStatistics: 'Registration Statistics',
          totalParticipants: 'Total Participants',
          paidCount: 'Paid',
          unpaidCount: 'Unpaid',
          totalAmount: 'Total Amount',
          paidAmount: 'Paid Amount',
          todayIncrease: 'Today\'s Increase',
          exportExcel: 'Export Excel',
          refresh: 'Refresh',
          paymentStatusDistribution: 'Payment Status Distribution',
          registrationTrend: 'Registration Trend',
          registrationTimeDistribution: 'Registration Time Distribution',
          detailedData: 'Detailed Data',
          proportion: 'Proportion',
          // 表格相关
          search: 'Search',
          reset: 'Reset',
          noData: 'No data',
          loading: 'Loading...',
          // 通用
          save: 'Save',
          cancel: 'Cancel',
          confirm: 'Confirm',
          delete: 'Delete',
          edit: 'Edit',
          add: 'Add',
          submit: 'Submit',
          viewDetails: 'View Details',
          operation: 'Operation',
          status: 'Status',
          createTime: 'Create Time',
          updateTime: 'Update Time'
        }
      };
      return translations[lang] && translations[lang][key] ? translations[lang][key] : key;
    },
    /**
     * 切换语言
     */
    toggleLanguage() {
      const newLang = this.currentLanguage === 'zh' ? 'en' : 'zh';
      this.$store.commit('set_language', newLang);
      // 触发页面更新
      this.$forceUpdate();
      // 更新页面标题
      if (this.$route) {
        this.updatePageTitle();
      }
    },
    /**
     * 解析双语 JSON 文本
     * @param {String} jsonStr JSON 字符串，格式为 {"zh": "中文", "en": "English"}
     * @param {String} lang 语言代码，'zh' 或 'en'，如果不提供则使用当前语言
     * @returns {String} 对应语言的文本，如果解析失败则返回原字符串
     */
    $getBilingualText(jsonStr, lang) {
      if (!jsonStr) return ''
      
      // 如果没有指定语言，使用当前语言
      if (!lang) {
        lang = this.currentLanguage || 'zh'
      }
      
      try {
        const json = JSON.parse(jsonStr)
        // 如果 JSON 中有对应语言的值，返回它
        if (json && typeof json === 'object' && json[lang] !== undefined) {
          return json[lang]
        }
        // 如果当前语言没有值，尝试返回另一种语言
        const fallbackLang = lang === 'zh' ? 'en' : 'zh'
        if (json[fallbackLang] !== undefined) {
          return json[fallbackLang]
        }
        // 如果都没有，返回第一个可用的值
        const firstValue = Object.values(json)[0]
        if (firstValue !== undefined) {
          return firstValue
        }
      } catch (e) {
        // 如果不是 JSON 格式，可能是旧数据，直接返回原值（默认为中文）
        if (lang === 'zh') {
          return jsonStr
        }
        // 英文模式下，如果原数据不是 JSON，返回空字符串
        return ''
      }
      
      return jsonStr
    },
    /**
     * 更新页面标题
     */
    updatePageTitle() {
      const lang = this.currentLanguage;
      const title = lang === 'zh' 
        ? '学术会议管理系统 - 管理后台'
        : 'Academic Conference Management System - Admin';
      document.title = title;
      if (document.logo !== undefined) {
        document.logo = title;
      }
    }
  },
  mounted() {
    // 组件挂载时更新页面标题
    if (this.$route) {
      this.updatePageTitle();
    }
  }
}